package router

import (
	beego "github.com/beego/beego/v2/server/web"
	web "ksd-social-api/modules/special/controller"
)

type SpecialRouter struct {
}

/**
 * @author feige
 * @date 2023-10-14
 * @version 1.0
 * @desc 需要登录路由
 */
func (router *SpecialRouter) InitRouter() beego.LinkNamespace {
	// 用户中心--子命名空间
	namespace := beego.NSNamespace("/cspecial",
		// 专题点赞
		beego.NSCtrlPost("validator/:specialId", (*web.SpecialController).ValiatorBuyFlagIdNo),
		// 专题点赞
		beego.NSCtrlPost("like/:specialId", (*web.SpecialController).LikeSpecial),
		// 专题取消点赞
		beego.NSCtrlPost("unLike/:specialId", (*web.SpecialController).UnLikeSpecial),
		// 专题收藏
		beego.NSCtrlPost("fav/:specialId", (*web.SpecialController).FavSpecial),
		// 专题取消收藏
		beego.NSCtrlPost("unFav/:specialId", (*web.SpecialController).UnFavSpecial),

		// 保存评论
		beego.NSCtrlPost("saveComment", (*web.SpecialCommentController).SaveComment),
		// 删除评论
		beego.NSCtrlPost("delComment", (*web.SpecialCommentController).DelComment),
		// 保存回复
		beego.NSCtrlPost("saveCommentReply", (*web.SpecialCommentReplyController).SaveComment),
		// 删除回复
		beego.NSCtrlPost("delCommentReply", (*web.SpecialCommentReplyController).DelComment),

		// 收藏，取消收藏
		beego.NSCtrlPost("fav/savecancel", (*web.SpecialUserFavController).SaveCancelSpecialUserFav),
		// 删除收藏
		beego.NSCtrlPost("fav/del", (*web.SpecialUserFavController).DelSpecialUserFav),

		// 点赞，取消点赞
		beego.NSCtrlPost("like/savecancel", (*web.SpecialUserLikeController).SaveCancelSpecialUserLike),
		// 删除点赞
		beego.NSCtrlPost("like/del", (*web.SpecialUserLikeController).DelSpecialUserLike),

		// 专题兑换码
		beego.NSCtrlPost("code/dh", (*web.SpecialCodeController).DuihuanSpecial),
		// 学习币兑换
		beego.NSCtrlPost("coin/dh", (*web.SpecialCodeController).DuihuanCoinSpecial),

		// 专题兑换码
		beego.NSCtrlPost("code/bind/dh", (*web.SpecialBindCodeController).DuihuanSpecialBind),
		// 学习币兑换
		beego.NSCtrlPost("coin/bind/dh", (*web.SpecialBindCodeController).DuihuanCoinSpecialBind),
	)
	return namespace
}

/**
 * @author feige
 * @date 2023-10-14
 * @version 1.0
 * @desc  不需要登录
 */
func (router *SpecialRouter) InitNoLoginRouter() beego.LinkNamespace {
	// 用户中心--子命名空间
	namespace := beego.NSNamespace("/cspecial",
		// 查看专题分类明细
		beego.NSCtrlPost("category/list", (*web.SpecialCategoryController).FindCategories),
		// 查看推荐专题
		beego.NSCtrlPost("push/list", (*web.SpecialController).FindPushSpecialListAndPage),
		// 查看专题的明细
		beego.NSCtrlPost("detail/:id", (*web.SpecialController).GetDetail),
		// 查看专题的明细
		beego.NSCtrlPost("detail/study/:id", (*web.SpecialController).GetUserStudyDetail),
		// 查看专题的明细
		beego.NSCtrlPost("list", (*web.SpecialController).FindSpecialListAndPage),
		// 评论列表查询
		beego.NSCtrlPost("pageComment", (*web.SpecialCommentController).FindCommentList),
		// 回复列表查询
		beego.NSCtrlPost("pageCommentRepley", (*web.SpecialCommentReplyController).FindCommentList),
	)
	return namespace
}

/**
 * @author feige
 * @date 2023-10-14
 * @version 1.0
 */
func (router *SpecialRouter) InitAdminRouter() beego.LinkNamespace {
	namespace := beego.NSNamespace("/adminspecial",
		// 查询列表
		beego.NSCtrlPost("/list", (*web.AdminSpecialController).FindSpecials),
		// 获取明细
		beego.NSCtrlPost("/detail/:id", (*web.AdminSpecialController).GetDetail),
		// 修改状态
		beego.NSCtrlPost("/update/status", (*web.AdminSpecialController).UpdateFieldById),
		// 修改状态
		beego.NSCtrlPost("/saveupdate", (*web.AdminSpecialController).SaveUpdateSpecial),
		// 保存兑换码
		beego.NSCtrlPost("/code/saveupdate", (*web.AdminSpecialController).SaveUpdateCodes),
		// 查看兑换码
		beego.NSCtrlPost("/code/list", (*web.AdminSpecialController).FindCodes),
		// 批量兑换
		beego.NSCtrlPost("/batch/users", (*web.AdminSpecialController).BatchSaveOrders),
		// 修改兑换码
		beego.NSCtrlPost("/code/update/status", (*web.AdminSpecialController).UpdateFieldByCodeId),
		// 删除兑换码
		beego.NSCtrlPost("/code/del/:id", (*web.AdminSpecialController).DelCodeById),
		// 删除
		beego.NSCtrlPost("/del/:id", (*web.AdminSpecialController).DelById),
		// 删除
		beego.NSCtrlPost("/del/order/:id", (*web.AdminSpecialController).DelByUserorderId),
		// 复制
		beego.NSCtrlPost("/copy/:id", (*web.AdminSpecialController).CopyData),

		// 删除绑定
		beego.NSCtrlPost("/bind/del/:id", (*web.AdminSpecialBindController).DelById),
		// 修改状态
		beego.NSCtrlPost("/bind/update/status", (*web.AdminSpecialBindController).UpdateFieldById),
		// 修改状态
		beego.NSCtrlPost("/bind/saveupdate", (*web.AdminSpecialBindController).SaveUpdateSpecialBind),

		// 删除绑定明细
		beego.NSCtrlPost("/binddetail/del/:id", (*web.AdminSpecialBindDetailController).DelById),
		// 修改状态
		beego.NSCtrlPost("/binddetail/update/status", (*web.AdminSpecialBindDetailController).UpdateFieldById),
		// 修改状态
		beego.NSCtrlPost("/binddetail/saveupdate", (*web.AdminSpecialBindDetailController).SaveUpdateSpecialDetail),
	)
	return namespace
}
